package com.axt.dbaudit.action.query.report;

import java.util.List;

import org.apache.struts2.json.annotations.JSON;

import com.axt.dbaudit.action.query.QueryBaseAction;
import com.axt.dbaudit.base.MsgFuncExt;
import com.axt.dbaudit.base.QueryFilter;
import com.axt.dbaudit.base.QueryType;
import com.axt.dbaudit.base.StatDim;
import com.axt.dbaudit.bean.query.report.QueryReportLoginBean;
import com.axt.dbaudit.model.query.report.LoginByClientIp;
import com.axt.dbaudit.model.query.report.LoginByClientIpSort;
import com.axt.dbaudit.model.query.report.LoginByLoginName;
import com.axt.dbaudit.model.query.report.LoginByLoginNameSort;
import com.axt.dbaudit.model.query.report.LoginByTime;
import com.axt.soa.msg.types.MsgParam;

public class QueryReportLoginAction extends QueryBaseAction {
	private QueryReportLoginBean queryReportLoginBean = new QueryReportLoginBean();
	public List<LoginByTime> loginByTimes = null;
	public List<LoginByClientIp> loginByClientIps = null;
	public List<LoginByClientIpSort> loginByClientIpSorts = null;
	public List<LoginByLoginName> loginByLoginNames = null;
	public List<LoginByLoginNameSort> loginByLoginNameSorts = null;

	@JSON(name = "loginbytimes")
	public List<LoginByTime> getLoginByTimes() {
		return loginByTimes;
	}

	void setLoginByTimes(List<LoginByTime> loginByTimes) {
		this.loginByTimes = loginByTimes;
	}

	@JSON(name = "loginbyclientips")
	public List<LoginByClientIp> getLoginByClientIps() {
		return loginByClientIps;
	}

	void setLoginByClientIps(List<LoginByClientIp> loginByClientIps) {
		this.loginByClientIps = loginByClientIps;
	}

	@JSON(name = "loginbyclientipsorts")
	public List<LoginByClientIpSort> getLoginByClientIpSorts() {
		return loginByClientIpSorts;
	}

	void setLoginByClientIpSorts(List<LoginByClientIpSort> loginByClientIpSorts) {
		this.loginByClientIpSorts = loginByClientIpSorts;
	}

	@JSON(name = "loginbyloginnames")
	public List<LoginByLoginName> getLoginByLoginNames() {
		return loginByLoginNames;
	}

	void setLoginByLoginNames(List<LoginByLoginName> loginByLoginNames) {
		this.loginByLoginNames = loginByLoginNames;
	}

	@JSON(name = "loginbyloginnamesorts")
	public List<LoginByLoginNameSort> getLoginByLoginNameSorts() {
		return loginByLoginNameSorts;
	}

	void setLoginByLoginNameSorts(
			List<LoginByLoginNameSort> loginByLoginNameSorts) {
		this.loginByLoginNameSorts = loginByLoginNameSorts;
	}

	/* 停止查询 */
	public String stopQuery() {

		/* 停止查询报警索引 */
		queryReportLoginBean.stopQueryIndices(serverPath);

		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;

	}

	// 按时间统计登录
	public String StatForFlowsByTimeRgn() {

		queryReportLoginBean.StatForFlowsByTimeRgn(serverPath, filters,
				maxRowNum);

		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	/* 根据时间范围统计 查询结果 */
	public String StatForFlowsByTimeRgnData() {

		/* 查询数据 */
		queryReportLoginBean.StatForFlowsByTimeRgnData(serverPath, filters,
				maxRowNum);

		setLoginByTimes(queryReportLoginBean.getLoingByTime());
		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	// 按客户端Ip间统计登录
	public String StatForLoginsByCliIP() {

		queryReportLoginBean.StatForLoginsByCliIP(serverPath, filters,
				maxRowNum);

		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	/* 根据客户端Ip范围统计 查询结果 */
	public String StatForLoginsByCliIPData() {

		/* 查询数据 */
		queryReportLoginBean.StatForLoginsByCliIPData(serverPath, filters,
				maxRowNum);

		setLoginByLoginNames(queryReportLoginBean.getLoginByLoginName());
		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	// 按客户端IP排序
	public String SortForLoginsByCliIP() {

		queryReportLoginBean.SortForLoginsByCliIP(serverPath, filters,
				maxRowNum);

		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	/* 按客户端IP排序 查询结果 */
	public String SortForLoginsByCliIPData() {

		/* 查询数据 */
		queryReportLoginBean.SortForLoginsByCliIPData(serverPath, filters,
				maxRowNum);

		setLoginByClientIpSorts(queryReportLoginBean.getLoginByClientIpSort());
		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	// 根据登录名统计登录
	public String StatForLoginsByLoginName() {

		queryReportLoginBean.StatForLoginsByLoginName(serverPath, filters,
				maxRowNum);

		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	/* 根据登录名统计登录 查询结果 */
	public String StatForLoginsByLoginNameData() {

		/* 查询数据 */
		queryReportLoginBean.StatForLoginsByLoginNameData(serverPath, filters,
				maxRowNum);

		setLoginByLoginNames(queryReportLoginBean.getLoginByLoginName());
		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	// 根据登录名对登录进行排序
	public String SortForLoginsByLoginName() {

		queryReportLoginBean.SortForLoginsByLoginName(serverPath, filters,
				maxRowNum);

		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	/* 根据登录名对登录进行排序 查询结果 */
	public String SortForLoginsByLoginNameData() {

		/* 查询数据 */
		queryReportLoginBean.SortForLoginsByLoginNameData(serverPath, filters,
				maxRowNum);

		setLoginByLoginNameSorts(queryReportLoginBean.getLoginByLoginNameSort());
		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	// 成功登录的客户端IP排名
	public String SortForLoginsByCliIPSuccess() {

		queryReportLoginBean.SortForLoginsByCliIPSuccess(serverPath, filters,
				maxRowNum);

		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	/* 成功登录的客户端IP排名 查询结果 */
	public String SortForLoginsByCliIPSuccessData() {

		/* 查询数据 */
		queryReportLoginBean.SortForLoginsByCliIPSuccessData(serverPath, filters,
				maxRowNum);

		setLoginByLoginNameSorts(queryReportLoginBean.getLoginByLoginNameSort());
		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	// 成功登录的登录名排名
	public String SortForLoginsByLoginNameSuccess() {

		queryReportLoginBean.SortForLoginsByLoginNameSuccess(serverPath, filters,
				maxRowNum);

		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	/* 成功登录的登录名排名 查询结果 */
	public String SortForLoginsByLoginNameSuccessData() {

		/* 查询数据 */
		queryReportLoginBean.SortForLoginsByLoginNameSuccessData(serverPath, filters,
				maxRowNum);

		setLoginByLoginNameSorts(queryReportLoginBean.getLoginByLoginNameSort());
		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	// 失败登录的客户端IP排名
	public String SortForLoginsByCliIPFail() {

		queryReportLoginBean.SortForLoginsByCliIPFail(serverPath, filters,
				maxRowNum);

		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	/* 失败登录的客户端IP排名 查询结果 */
	public String SortForLoginsByCliIPFailData() {

		/* 查询数据 */
		queryReportLoginBean.SortForLoginsByCliIPFailData(serverPath, filters,
				maxRowNum);

		setLoginByLoginNameSorts(queryReportLoginBean.getLoginByLoginNameSort());
		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	// 失败登录的登录名排名
	public String SortForLoginsByLoginNameFail() {

		queryReportLoginBean.SortForLoginsByLoginNameFail(serverPath, filters,
				maxRowNum);

		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}

	/* 失败登录的登录名排名 查询结果 */
	public String SortForLoginsByLoginNameFailData() {

		/* 查询数据 */
		queryReportLoginBean.StatForFlowsByTimeRgnData(serverPath, filters,
				maxRowNum);

		setLoginByLoginNameSorts(queryReportLoginBean.getLoginByLoginNameSort());
		setErrcode(queryReportLoginBean.getErrcode());
		setErrinfo(queryReportLoginBean.getErrinfo());

		return MsgParam.SUCCESS;
	}
}
